package linkedlist;

import java.util.LinkedList;

/*
*  void addFirst(E e)  将指定元素插入此列表的开头。
* void addLast(E e)    将指定元素添加到此列表的结尾。
* E getFirst()         返回此列表的第一个元素。
* E getLast()          返回此列表的最后一个元素。
*  E removeFirst()     移除并返回此列表的第一个元素。
* E removeLast()       移除并返回此列表的最后一个元素。
* */
public class LinkedListDemo01 {
    public static void main(String[] args) {
        method01();
        method02();
        method03();
    }

    private static void method03() {
        LinkedList<String> ll3 = new LinkedList<String>();
        ll3.addLast("abc");
        ll3.addLast("def");
        ll3.addLast("ghk");
        String s = ll3.removeFirst();
        System.out.println(s); // abc
        String s1 = ll3.removeLast();
        System.out.println(s1); // ghk
    }

    private static void method02() {
        LinkedList<String> ll2 = new LinkedList<String>();
        ll2.addLast("abc");
        ll2.addLast("def");
        ll2.addLast("ghk");
        String first = ll2.getFirst();
        System.out.println(first);  // abc
        String last = ll2.getLast();
        System.out.println(last); //  ghk
    }

    private static void method01() {
        LinkedList<String> ll = new LinkedList<String>();
        ll.addFirst("abc"); // [abc]
        ll.addFirst("def");// [def,abc]
        ll.addFirst("ghk");
        System.out.println(ll); // [ghk, def, abc]
        ll.addLast("jkl");
        ll.addLast("uio");
        System.out.println(ll); // [ghk, def, abc, jkl, uio]
    }
}
